/*
 * NodeList.h
 *
 *  Created on: 20/04/2009
 *      Author: santiago
 */

#ifndef NODE_H_
#define NODE_H_

/**
 * Base class for every node which wants to be inside a list
 */
class Node {
private:

	Node* next;

public:

	void setNext(Node* node);

	Node* getNext() const;

	virtual ~Node();

	Node();

	/**
	 * Virtual clone to implement. Virtual copy constructor.
	 */
	virtual Node* clone() const = 0;

	/**
	 * Virtual equals to compare with another nodes.
	 */
	virtual bool equals(const Node& node) const = 0;

};

#endif /* NODE_H_ */
